package cn.tede.file;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;

/*测试文件内File*/
public class TestFile {
    public static void main(String[] args) throws IOException {
        /*1.File需要导包:import java.io.file
        * 2.路径是String类型,必须写正确,不然找不到文件
        * 3.完整的文件名包含两部分:文件名+后缀名
        * 4.ready文件夹与1.txt需要手动创建*/
        File file=new File("D:\\ready\\1.txt");
        System.out.println(file.length());//字节量
        System.out.println(file.exists());//是否存在
        System.out.println(file.isFile());//判断当前file对象是文件吗
        System.out.println(file.isDirectory());//是文件夹吗
        System.out.println(file.getName());//1.txt  获取文件完整名字
        System.out.println(file.getParent());//D:\ready   文件的父级路径
        System.out.println(file.getAbsoluteFile());//D:\ready\1.txt   过去带盘符的文件的绝对路径

        /**创建与删除*/
        /*new只会帮你在内存中创建一个file类型的对象
         * 并不会帮你在磁盘中创建一个真实存在的2.txt
         *
         * 如果指定创建文件的路径不对,会抛出异常
         * 如果我们需要提前处理这个问题,暂时选择在main()上抛出
         * 这个IO异常是我们目前遇到的强制要求必须预先处理的异常
         * 如果不处理,方法的调用会报错,通不过编译*/
        File file2=new File("D:\\ready\\2.txt");
        System.out.println(file2.createNewFile());

        File file3=new File("D:\\ready\\m");
        System.out.println(file3.mkdir());//d

        File file4=new File("D:\\ready\\a\\b\\c");
        System.out.println(file4.mkdirs());

        file2.delete();//删除文件2.txt
        file4.delete();//删除空文件夹c
        file3.delete();//直接删除空文件夹m

        File file5=new File("D:\\ready");
        String[] list=file5.list();
        System.out.println(Arrays.toString(list));

        File[] fs=file5.listFiles();//[1.txt, a]
        System.out.println(Arrays.toString(fs));//[D:\ready\1.txt, D:\ready\a]
    }
}
